CC		=g++
SCANNER		=scanner
PARSER		=parser

INCLUDES=-I$(SCANNER) -I$(PARSER) -I.

CXXFLAGS=$(INCLUDES) -c -g

netthumb: Context.o netthumbTypes.o SymbolTable.o parser.tab.o lex.Netthumb.o netthumb.o driver.o BackendI.o
	$(CC) -g $^ -o $@
%.o: %.cc
	$(CC) $(CXXFLAGS) $< -o $@

%.o: %.c
	$(CC) $(CXXFLAGS) $< -o $@

lex.Netthumb.cc: $(SCANNER)/lexer.l
	flex $<

parser.tab.c parser.tab.h: $(PARSER)/parser.y
	bison $<

clean:
	$(RM) *.o yylex.cc parse.cc parserbase.h *.ih
	$(RM) *.hh lex.Netthumb.* parser.tab.*